24
תגובות
למה זה לא עובד?

htaccess
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php


config:
"components" => array
    (
        'urlManager' => array
        (
            'urlFormat' => 'path',
            'rules' => array
(
    '' => 'site/index',
    'index.html' => 'site/index',
)
        )
    ),


אני נכנס לindex.html וזה מציג לי שגיאה 404 קובץ לא קיים

24 תשובות

avatar ענה משתמש_217484 ב 18 למאי 2012 #

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d,

לאן בדיוק כיוונת את זה?

avatar ענה משתמש_217309 ב 18 למאי 2012 #

ככה מופיעה במדריך

avatar ענה intval ב 18 למאי 2012 #

השגיאה שאתה מקבל היא שגיאה של השרת או שגיאה של YII ?
מסך לבן כזה של

Not Found

The requested URL...  was not found on this server.

או משהו אחר?

avatar ענה משתמש_217309 ב 18 למאי 2012 #

זה השגיאה
Not Found

The requested URL /store/index.html was not found on this server.
Apache/2.2.22 (Ubuntu) Server at localhost Port 80

avatar ענה intval ב 18 למאי 2012 #

אז אתה לא כותב index.html
אתה כותב /store/index.htm וזה לא הנטיב שכתבת בהגדרות הניטוב.

איפה נמצא ה index.php של YII ? בתיקיה store או בתיקיה הראשית?
וה htaccess ?

avatar ענה משתמש_217309 ב 18 למאי 2012 #

הקובץ index.php נמצא בתיקייה store
הhtaccess נמצא בתיקייה store

הבעיה שאני חושש שהיא זה שלא עשיתי הרשאה לhtaccess
איך אני נותן הרשאה בlinux?

avatar ענה intval ב 18 למאי 2012 #

השרת שלך כולו או שזה באחסון כלשהו ?
זה לא עניין של הרשאות
יכול להיות שפשוט השרת מתעלם מ htaccess.
אם זה המקרה, צריך ללכת לקובץ הקונפיגורצה של השרת
ולשנות את
AllowOverride None
ל
AllowOverride All

avatar ענה משתמש_217309 ב 18 למאי 2012 #

האמת היא שהמחשב שלי זה linux אני לא משתמש בשרת
ואיך אני משנה את זה?

avatar ענה intval ב 18 למאי 2012 #

o.O
איזה מערכת הפעלה ? ubuntu? centos?

avatar ענה משתמש_217309 ב 18 למאי 2012 #

Ubuntu אפשר לראות את זה בשגיאה

avatar ענה intval ב 18 למאי 2012 #

צודק, לא הסתכלתי אפילו.

sudo gedit /etc/apache2/httpd.conf

תמצא שם את
AllowOverride None

תחליף ל
AllowOverride All
ותפעיל מחדש את השרת עם
sudo /etc/init.d/apache2 restart

avatar ענה משתמש_217309 ב 18 למאי 2012 #

פתחתי את httpd.conf והוא ריק :o

avatar ענה intval ב 18 למאי 2012 #

sudo gedit /etc/apache2/apache2.conf
אם אין שם שום דבר על allowoverride
לך לקובץ

sudo gedit /etc/apache2/sites-available/default

ותוסיף שם לתור
את AllowOverride All

<Directory />

    Options FollowSymLinks

    AllowOverride All

  </Directory>

avatar ענה משתמש_217309 ב 18 למאי 2012 #

עדין לא עובד :/ זה מציג לי שגיאה 404 כמו מקודם

avatar ענה intval ב 18 למאי 2012 #

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

?

avatar ענה משתמש_217309 ב 18 למאי 2012 #

לא ועשיתי גם
RewriteRule index.html index.php

בhtaccess וזה עדין לא עבד ~.~
איזה עצבים כדאי לי לעבור לשרת וזהו?

avatar ענה intval ב 18 למאי 2012 #

אתה כבר על שרת :)
הכל אמור לעבוד אם הגדרת הכל נכון ואתה ו localhost באמת מוביל לתיקיה שאתה חושב שהוא מוביל אליה.

avatar ענה משתמש_217309 ב 18 למאי 2012 #

זה הכתובת
localhost/store/index.html

זה השגיאה
Not Found

The requested URL /store/index.html was not found on this server.
Apache/2.2.22 (Ubuntu) Server at localhost Port 80

אבל זה לא עובד ~.`

avatar ענה intval ב 18 למאי 2012 #

הבנתי מה השגיאה. אתה בטוח ששמת את הקבצים בתיקיה הנכונה ? איפה שמת את הקבצים ?

avatar ענה משתמש_217309 ב 18 למאי 2012 #

/var/www/store/index.php
var/www/store/.htaccess
/var/www/store/protected/config/config.php

avatar ענה intval ב 18 למאי 2012 #

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . /store/index.php

avatar ענה משתמש_217309 ב 18 למאי 2012 #

אוקיי משהו מוזר שאני לא שמתי לב אליו,
בתיקייה /var/www/store לא רואים את הקובץ .htaccess
אבל בnetbeans אני רואה את הקובץ htaccess

avatar ענה intval ב 19 למאי 2012 #

מעכרת ההפעלה מחשיבה קבצים שמתחילים בנקודה בתור קבצים מוסתים.
תלחך ctrl + H וזה יציג לך גם קבצים מוסתרים.
מספיק שאתה רואה אותו ב netbeans. זה אומר שהוא שם.

------------
לפי השאלה המקבילה שלך אני מבין שהנושא הזה הסתדר?

avatar ענה משתמש_217309 ב 19 למאי 2012 #

כן פשוט עברתי לשרת נראה לך יותר טוב מאשר להציק לך